Component org.nuxeo.drive.service.FileSystemItemAdapterService
In bundle org.nuxeo.drive.core
Documentation
This service allows to get a FileSystemItem from a DocumentModel.
FileSystemItem is an adapter that provides methods to get data from the document such as the binary content for a File or the children items of a Folder.
It is used by Nuxeo Drive to fetch the needed data for synchronization.
Factories can be contributed to implement a specific behavior for the FileSystemItem retrieval depending on the document type or facet.
Implementation
Class:
org.nuxeo.drive.service.impl.FileSystemItemAdapterServiceImpl
Services
Extension Points
XML Source
<?xml version="1.0"?>
<component name="org.nuxeo.drive.service.FileSystemItemAdapterService"
version="1.0">
<documentation>
@author Antoine Taillefer (ataillefer@nuxeo.com)
This service allows to get a FileSystemItem from a
DocumentModel.
FileSystemItem is an adapter that provides methods to
get data from the document such as the binary content for a File
or the children items of a Folder.
It is used by Nuxeo Drive to fetch the needed data for synchronization.
Factories can be contributed to implement a specific behavior
for the FileSystemItem retrieval
depending on the document type or facet.
</documentation>
<service>
<provide interface="org.nuxeo.drive.service.FileSystemItemAdapterService" />
</service>
<implementation
class="org.nuxeo.drive.service.impl.FileSystemItemAdapterServiceImpl" />
<extension-point name="fileSystemItemFactory">
<documentation>
@author Antoine Taillefer (ataillefer@nuxeo.com)
This extension point lets you contribute custom
FileSystemItem factories according to a document
type or facet.
Example of the DefaultFileSystemItemFactory:
<code>
<extension
target="org.nuxeo.drive.service.FileSystemItemAdapterService"
point="fileSystemItemFactory">
<fileSystemItemFactory name="defaultFileSystemItemFactory" order="50"
class="org.nuxeo.drive.service.impl.DefaultFileSystemItemFactory">
<parameters>
<parameter name="versioningDelay">3600</parameter>
<parameter name="versioningOption">MINOR</parameter>
</parameters>
</fileSystemItemFactory>
</extension>
</code>
Please note that `versioningDelay` and `versioningOption` parameter have been deprecated since 9.1 and are not
used anymore as automatic versioning is now handled at versioning service level.
Example of a FileSystemItem factory for documents with the Picture facet:
<code>
<extension
target="org.nuxeo.drive.service.FileSystemItemAdapterService"
point="fileSystemItemFactory">
<fileSystemItemFactory name="picture" facet="Picture" order="100"
class="org.nuxeo.drive.sample.PictureFileSystemItemFactory" />
</extension>
</code>
</documentation>
<object class="org.nuxeo.drive.service.impl.FileSystemItemFactoryDescriptor" />
</extension-point>
<extension-point name="topLevelFolderItemFactory">
<documentation>
@author Antoine Taillefer (ataillefer@nuxeo.com)
This extension point lets you contribute the factory
for the top level FolderItem.
Example of the DefaultTopLevelFolderItemFactory:
<code>
<extension
target="org.nuxeo.drive.service.FileSystemItemAdapterService"
point="topLevelFolderItemFactory">
<topLevelFolderItemFactory class="org.nuxeo.drive.service.impl.DefaultTopLevelFolderItemFactory" />
</extension>
</code>
</documentation>
<object class="org.nuxeo.drive.service.impl.TopLevelFolderItemFactoryDescriptor" />
</extension-point>
<extension-point name="activeFileSystemItemFactories">
<documentation>
@author Antoine Taillefer (ataillefer@nuxeo.com)
This extension point lets you contribute the active FileSystemItem factories.
Example of the default contribution:
<code>
<extension target="org.nuxeo.drive.service.FileSystemItemAdapterService"
point="activeFileSystemItemFactories">
<activeTopLevelFolderItemFactory>org.nuxeo.drive.service.impl.DefaultTopLevelFolderItemFactory
</activeTopLevelFolderItemFactory>
<activeFileSystemItemFactories>
<factories>
<factory>defaultSyncRootFolderItemFactory</factory>
<factory>defaultFileSystemItemFactory</factory>
</factories>
</activeFileSystemItemFactories>
</extension>
</code>
Example of a custom contribution:
<code>
<extension target="org.nuxeo.drive.service.FileSystemItemAdapterService"
point="activeFileSystemItemFactories">
<activeTopLevelFolderItemFactory>org.nuxeo.drive.hierarchy.userworkspace.factory.UserWorkspaceTopLevelFactory
</activeTopLevelFolderItemFactory>
<activeFileSystemItemFactories merge="true">
<factories>
<factory enabled="false">defaultSyncRootFolderItemFactory</factory>
<factory>userWorkspaceSyncRootParentFactory</factory>
<factory>userWorkspaceSyncRootFactory</factory>
</factories>
</activeFileSystemItemFactories>
</extension>
</code>
</documentation>
<object class="org.nuxeo.drive.service.impl.ActiveFileSystemItemFactoriesDescriptor" />
<object class="org.nuxeo.drive.service.impl.ActiveTopLevelFolderItemFactoryDescriptor" />
</extension-point>
</component>